package cn.zebra.dev.admin.module.product.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author runnable@sina.cn
 */
@Getter
@Setter
@ToString
public class ProductVO {
    @ApiModelProperty(value = "商品类型")
    private Integer productType;

    @ApiModelProperty("商品名称")
    private String productName;

    @ApiModelProperty("商品短名称")
    private String shortName;

    @ApiModelProperty("商品编号")
    private String productSn;

    @ApiModelProperty("商品所属品牌id")
    @NotNull(message = "请输入商品品牌管理id")
    private Long productBrandId;

    @ApiModelProperty("商品图片地址")
    private String productImage;

    @ApiModelProperty("商品视频地址")
    private String productVideo;

    @ApiModelProperty("商品详情(富文本)")
    private String productDetails;

    @ApiModelProperty("详情图片路径")
    private String detailImg;

    @ApiModelProperty("商品总库存")
    private Long totalNum;

    @ApiModelProperty("商品已售数量")
    private Long sellNum;

    @ApiModelProperty("是否上架")
    private Boolean saleFlag;

    @ApiModelProperty("商品上架时间")
    private LocalDateTime saleTime;

    @ApiModelProperty("单位名称")
    private String unitName;

    @ApiModelProperty("单价")
    private BigDecimal unitPrice;

    @ApiModelProperty("商品审核说明")
    private String statusRemark;

    @ApiModelProperty("商品状态-1:禁售 0:未审核 1:已审核")
    private Integer status;

    @ApiModelProperty("是否显示")
    private Boolean showFlag;

    @ApiModelProperty("最低价")
    private BigDecimal minPrice;

    @ApiModelProperty("最高价")
    private BigDecimal maxPrice;

    @ApiModelProperty("购买消耗积分")
    private Long point;

    @ApiModelProperty("购物完成赠送积分")
    private Long returnPoint;

    @ApiModelProperty("购买增加经验值")
    private Long levelExp;

    @ApiModelProperty("商品SKU信息集合")
    @NotNull(message = "请创建一个有效的SKU列表!")
    @NotEmpty(message = "请创建一个有效的SKU列表!")
    private List<ProductSkuVO> skuList;

    @ApiModelProperty("分类id集合")
    private List<Long> categoryIds;
}
